#pragma once
#include "client.h"

/*
o clasa pentru un client care poate efectua modificari asupra intrarilor
*/

class ClientFull :
	public Client
{

protected:

	static const char* LDAP_Password;
	char *ldif_file;
	char *JPG_image;

	bool password_checking(char *pass);

public:
	ClientFull(char *CN,char *OU,char **DN,int DN_level);

	ClientFull(char *CN,char **DN,int DN_level);



	~ClientFull(void);



	//void DeleteEntry(char *dn,int auth_type,char *passWord,char **optiuni,int nr_opt,char* entry_dn);

	void DeleteAtributeFromEntry(char *dn,int auth_type,char *passWord,char **optiuni,int nr_opt,vector<Atribut<char*>> atributes);

	void sendLdifFile(char *file_name);

	void ModifyAtributes(char *dn,int auth_type,char *passWord,char **optiuni,int nr_opt,vector<Atribut<char*>> atr_noi);

	void AddAtributes(char *dn,int auth_type,char *passWord,char **optiuni,int nr_opt,vector<Atribut <char *>> atr_add);

	void AddJPGPhoto_Atribute(char *dn,int auth_type,char *passWord,char **optiuni,int nr_opt,char *JPGFile_name);

	//void addEntry(char *dn,int auth_type,char *passWord,char **optiuni,int nr_opt,vector<Atribut<char*>> atribute);

	void sendLdifFile(vector<Atribut<char*>> atribute);

	void ClientFull::sendJPGImage(char *image_name);

};

